﻿using System.Collections.Generic;
using System.Windows.Controls;

namespace MSAP.Framework.Interfaces
{
    /// <summary>
    /// Etat du login de l'utilisateur
    /// </summary>
    public enum eLoginStatus 
    { 
        NotChecked, // Non verifier
        Connected,  // connecter donc accepté par le system
        Refused     // Refuser, le systeme refuse l'utilisateur
    };

    /// <summary>
    /// Le shell est un module particulier en ce sens qu'il est le parent de tout les modules
    /// </summary>
    public interface IShell : IModule
    {
        void Init();

        // Gestion des modules associé au shell
        List<IModule>   Modules { get; }
        void            AddModule(IModule module);
        IModule         GetModule(string id);

        // Gestion de la view principal du shell
        TabControl      View { get; set; }
        TabItem         CurrentServicePageView { get; }
        // Gestion de la service page courrant 
        IServicePage    CurrentServicePage { get; }
        // Identification de la service page par defaut
        IServicePage    DefaultServicePage { get; set; }

        // Information de l'utilisateur connecté
        string LoginName            { get; }    // Nom de login
        string UserRole             { get; }    // Le role le plus fort de l'utilisateur
        string UserRoleFrendly      { get; }    // Le role de l'utilisateur sous forme lisible pour l'IHM
        string UserName             { get; }    // Le nom de l'utilisateur
        eLoginStatus LoginStatus    { get; }    // Etat du login de lutilisateur
    }
}
